
import { getToken, setToken, removeToken } from '@/utils/auth'
import { getInfo, getInfoById } from '@/api/user'
export default {
  namespaced: true,
  state: {
    // 从这个函数里面取  token 取不到就是 ''
    token: getToken() || '', // 保存token
    userInfo: {} // 定义数据  保存用户信息
  },
  mutations: {
    // 更新存储  token
    axiosToken(state, Token) {
      state.token = Token
      // 将 token 存储到 cookie 中实现持久化
      setToken(Token)
    },
    // 清空token
    delToken(state) {
      state.token = ''
      // 清空 cookie 中的 token
      removeToken()
    },
    // 4.更新用户信息函数
    ubdateinfo(state, Info) {
      state.userInfo = Info
    },
    // 清除数据
    delInfo(state) {
      state.userInfo = {}
    }
  },
  // 2.发送请求获取用户信息  存储vuex中
  actions: {
    async axiosUserInfo(context) {
      try {
        // 发送请求 基本资料
        const res = await getInfo()
        // console.log(res)
        // 发送请求依据id  获取用户详细资料
        const info = await getInfoById(res.data.userId)
        //  console.log(info)
        // 3.调用 mutations中函数,存储数据
        // {...res.data,...info.data}  吧获取到的数据 利用展开运算符进行数据的拼接
        context.commit('ubdateinfo', { ...res.data, ...info.data })
        // 等所有事件昨晚 返回一个结果 得到页面级别的权限
        // ['employees', 'approvals', 'attendances', __ob__: Observer]
        return res.data.roles.menus
      } catch (error) {
        console.log(error)
      }
    }
  }
}
